﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HealthSystem : MonoBehaviour
{
    private int _health = 0;

    // 定义一个委托，表示当血量变化时的回调方法
    public delegate void HealthChangedDelegate(int newHealth);

    // 定义一个事件，使用上述委托
    public event HealthChangedDelegate OnHealthChanged;

    // 提供一个公开的属性来访问和修改血量
    public int Health
    {
        get { return _health; }
        private set
        {
            _health = Mathf.Clamp(value, 0, 100);
            // 触发事件，通知所有订阅者
            OnHealthChanged?.Invoke(_health);
        }
    }

    // 提供一个方法来减少血量
    public void TakeDamage(int damage)
    {
        Health += damage;
    }
}